Treat XKB_MOD_NAME_LOGO as super key
authorPo Lu <luangruo@yahoo.com>
Mon, 19 Sep 2022 07:57:58 +0000 (15:57 +0800)
committerThomas Jost <schnouki@schnouki.net>
Wed, 7 Dec 2022 16:34:17 +0000 (17:34 +0100)
Based on !5088. See also #4913.

gdk/wayland/gdkkeys-wayland.c

index 0013f7ce3c4294fea04fe909606ad5b0a35e8663..10f75697d34680d53faf8c328ad1c9fd01190374 100644 (file)
@@ -268,7 +268,7 @@ get_xkb_modifiers (struct xkb_keymap *xkb_keymap,
   if (state & GDK_MOD5_MASK)
     mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod5");
   if (state & GDK_SUPER_MASK)
-    mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Super");
+    mods |= (1 << xkb_keymap_mod_get_index (xkb_keymap, "Super") | 1 << xkb_keymap_mod_get_index (xkb_keymap, XKB_MOD_NAME_LOGO));
   if (state & GDK_HYPER_MASK)
     mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Hyper");
   if (state & GDK_META_MASK)
@@ -296,7 +296,7 @@ get_gdk_modifiers (struct xkb_keymap *xkb_keymap,
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod3")))
     state |= GDK_MOD3_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, XKB_MOD_NAME_LOGO)))
-    state |= GDK_MOD4_MASK;
+    state |= GDK_MOD4_MASK | GDK_SUPER_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod5")))
     state |= GDK_MOD5_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Super")))